package com.baselib.android.utils;

import android.util.Log;

public class Logger {

    protected static final String TAG = "basePlatfprm";
    public static boolean isDebug = true;

    public static void initDebug(boolean isdebug) {
        isDebug = isdebug;
    }

    public static void v(String msg) {
        if (isDebug)
            Log.v(TAG, buildMessage(msg));
    }

    public static void v(String msg, Throwable thr) {
        if (isDebug)
            Log.v(TAG, buildMessage(msg), thr);
    }

    public static void d(String msg) {
        if (isDebug)
            Log.d(TAG, buildMessage(msg));
    }

    public static void d(String msg, Throwable thr) {
        if (isDebug)
            Log.d(TAG, buildMessage(msg), thr);
    }


    public static void i(String msg) {
        if (isDebug)
            Log.i(TAG, buildMessage(msg));
    }

    public static void i(String msg, Throwable thr) {
        if (isDebug)
            Log.i(TAG, buildMessage(msg), thr);
    }

    public static void e(String msg) {
//        if (isDebug)
        Log.e(TAG, msg);
    }


    public static void e(Exception e) {


        try {
            e(e.getLocalizedMessage(), e);
        } catch (Exception ee) {
            Log.e("mobile", "err" +
                    "");
        }
    }

    public static void e(String msg, Throwable thr) {
        Log.i(TAG, buildMessage(msg), thr);
    }

    protected static String buildMessage(String msg) {

        StackTraceElement caller = new Throwable().fillInStackTrace()
                .getStackTrace()[2];
        String mess = new StringBuilder().append(caller.getClassName())
                .append(".").append(caller.getMethodName()).append("(): ")
                .append(msg).toString();
        return caller.toString() + msg + mess;

    }

}
